﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.UI.Bovespa.Corretagem.Communication.Bovespa.Corretagem.DescontoCliente;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Corretagem.Communication.Translator.ModelToDataContract
{
    //Task  : 5617 
    // Data : 16/03/2009
    // Autor:Apsilva
    /// <summary>
    /// Translator Desconto Cliente de Model para Data Contract
    /// </summary>
    /// 
    public class DescontoCliente
    {
        #region Translate DescontoCliente

        public DescontoClienteRequest ToDescontoClienteRequest(Model.DescontoCliente  request)
        {
            DescontoClienteRequest response = new DescontoClienteRequest();
            response.ApelidoCliente = request.ApelidoCliente;
            response.CodigoCliente = request.CodigoCliente;
            response.PercentualDescontoAcresimo = request.PercentualDescontoAcresimo;
            if (request.TipoOperacao !=null)
                response.TipoOperacao = (Bovespa.Corretagem.DescontoCliente.TipoOperacaoDesconto ?) Enum.Parse(typeof(Bovespa.Corretagem.DescontoCliente.TipoOperacaoDesconto), request.TipoOperacao.Value.ToString()); 
            return response;
        }

        public List<DescontoClienteRequest> ToDescontoClienteRequest(ModelCollection<Model.DescontoCliente> request)
        {
            List<DescontoClienteRequest> response = new List<DescontoClienteRequest>();
            foreach (Model.DescontoCliente  item in request)
            {
                response.Add(ToDescontoClienteRequest(item));

            }
            return response;
        }

        #endregion

        #region Translate FiltroDescontoCliente

        public FiltroDescontoClienteRequest ToFiltroDescontoClienteRequest(Model.Parameter.FiltroDescontoCliente request)
        {
            FiltroDescontoClienteRequest response = new FiltroDescontoClienteRequest();
            response.CodigoCliente = request.CodigoCliente; 
            response.ApelidoCliente = request.ApelidoCliente;
            response.PercentualDescontoAcresimo = request.PercentualDescontoAcresimo;
            if (request.TipoOperacao !=null) 
            response.TipoOperacao  = (TipoOperacaoDesconto?) Enum.Parse(typeof(TipoOperacaoDesconto), request.TipoOperacao.Value.ToString());
            return response;
        }

        public List<FiltroDescontoClienteRequest> ToFiltroDescontoClienteRequest(ModelCollection<Model.Parameter.FiltroDescontoCliente> request)
        {
            List<FiltroDescontoClienteRequest> response = new List<FiltroDescontoClienteRequest>();
            foreach (Model.Parameter.FiltroDescontoCliente   item in request)
            {
                response.Add(ToFiltroDescontoClienteRequest(item));
            }
            return response;
        }

        #endregion

    }
}
